import {
  log_mongoDB,
  mongoDB,
} from '../../../../../../../../conect_mongoDB_class_laugh_node';
import {
  prop_cur_req_user_identity,
  req_cur_headers_info,
} from '../../../../../Classes/cla_req_cur_headers_info';
import { log_db_prefix } from '../../../../../DataDefine/mdb_info';
import { spacename_user } from '../../../DataDefine/sourceData';
import { spacename_self_type } from '../../upload/api/self_type/DataDefine/sourceData';

/**
 * path --> log_user
 *
 * 用户 身份表 基准 path
 */
export function get_path_log_db_user() {
  return `${log_db_prefix}_${spacename_user}`;
}

/**
 * path --> log_user_${cur_user_id}
 *
 * 用户 身份表 基准 path
 */
export function get_path_log_db_cur_user(cur_info: req_cur_headers_info) {
  return `${get_path_log_db_user()}_${cur_info[prop_cur_req_user_identity]}`;
}

/**
 * mian --> user_account
 *
 * 用户 身份表 基准 path
 */
export function get_db_user_account() {
  return mongoDB.collection(`${spacename_user}_account`);
}

/**
 * log --> log_user_${cur_user_id}
 *
 * 用户 身份表 基准 path
 */
export function get_log_db_cur_user(cur_info: req_cur_headers_info) {
  return log_mongoDB.collection(
    `${get_path_log_db_user()}_${cur_info[prop_cur_req_user_identity]}`
  );
}

/**
 * path --> log_user_${cur_info.id}_type
 *
 * 用户 私有 类型 日志表 path
 */
export function get_path_log_cur_user_type(cur_info: req_cur_headers_info) {
  return `${get_path_log_db_cur_user(cur_info)}_${spacename_self_type}`;
}

/**
 * log --> log_user_${cur_user_id}_type
 *
 * 用户 私有 类型 日志表
 */
export function get_log_cur_user_type(cur_info: req_cur_headers_info) {
  let dn_log_cur_user_type = `${get_path_log_db_cur_user(
    cur_info
  )}_${spacename_self_type}`;

  return log_mongoDB.collection(dn_log_cur_user_type);
}
